package codeblock;
/**
 * 构造函数,静态代码块,构造代码块的执行顺序
 * new Demo04();
 *  1.加载Demo04类,由于静态代码块随着类的加载而执行,此时执行静态代码块内容
 *  2.创建Demo04()对象之前,会先调用构造代码块执行
 *  3.构造代码块执行完,才去执行构造函数
 * 再次new Demo04();
 *  静态代码块随着类的加载而执行,但是只执行一次
 *  1.再次创建Demo04()对象之前,会先调用构造代码块执行
 *  2.构造代码块执行完,才去执行构造函数
 */
public class Demo04 {
    {
        System.out.println("构造代码块");
    }
    static{
        System.out.println("静态代码块");
    }
    public Demo04(){
        System.out.println("构造函数");
    }

    public static void main(String[] args) {
        new Demo04();
        System.out.println("------------------");
        new Demo04();
    }
}
